package com.xsd.parser.model;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * Schema组件属性
 * </p>
 *
 * @author kehaofei
 * @since 2019-12-09
 */
public class ElementListModel implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 注册机构标识符
     */
    private String elementLirTag;
    /**
     * 数据组件标识符
     */
    private String dataModuleTag;
    /**
     * 版本
     */
    private String version;
    /**
     * 组件类型
     */
    private String elementType;
    /**
     * 数据类型
     * 英文名称
     */
    private String dataTypeEN;
    /**
     * "数据元素
     * 英文名称"
     */
    private String dataElementEN;
    /**
     * "数据组件
     * 中文名称"
     */
    private String dataModuleCN;
    /**
     * "数据类型基类/数据元素约束类型
     * 英文名称"
     */
    private String dataBaseTypeEN;
    /**
     * "数据组件
     * 英文定义"
     */
    private String dataModuleDefEN;
    /**
     * "数据组件
     * 中文定义"
     */
    private String dataModuleDefCN;
    /**
     * 所有引用标准
     */
    private String allRefStandard;

    /**
     * 替换元素的替换数据名
     */
    private String substitutionGroup;
    /**
     * 替换元素的替换数据名
     * @return
     */
    public String getSubstitutionGroup() {
        if(substitutionGroup==null || substitutionGroup.isEmpty()){
            return "";
        }
        return substitutionGroup;
    }

    public void setSubstitutionGroup(String substitutionGroup) {
        this.substitutionGroup = substitutionGroup;
    }

    /**
     *子项列表数据
     */
    private List<ElementListModel> elementList;

    public List<ElementListModel> getElementList() {
        return elementList;
    }

    public void setElementList(List<ElementListModel> elementList) {
        this.elementList = elementList;
    }

    /**
     * 注册机构标识符
     * @return
     */
    public String getElementLirTag() {
        if(elementLirTag==null || elementLirTag.isEmpty()){
            return "";
        }
        return elementLirTag.trim();
    }

    public void setElementLirTag(String elementLirTag) {
        this.elementLirTag = elementLirTag;
    }

    /**
     * 数据组件标识符
     * @return
     */
    public String getDataModuleTag() {
        if(dataModuleTag==null || dataModuleTag.isEmpty()){
            return "";
        }
        return dataModuleTag.trim();
    }

    public void setDataModuleTag(String dataModuleTag) {
        this.dataModuleTag = dataModuleTag;
    }

    /**
     * 版本
     * @return
     */
    public String getVersion() {
        if(version==null || version.isEmpty()){
            return "";
        }
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    /**
     * 组件类型
     * @return
     */
    public String getElementType() {
        if(elementType==null || elementType.isEmpty()){
            return "";
        }
        return elementType.trim();
    }

    public void setElementType(String elementType) {
        this.elementType = elementType;
    }

    /**
     * 数据类型英文名称
     * @return
     */
    public String getDataTypeEN() {
        if(dataTypeEN==null || dataTypeEN.isEmpty()){
            return "";
        }
        return dataTypeEN;
    }

    public void setDataTypeEN(String dataTypeEN) {
        this.dataTypeEN = dataTypeEN;
    }

    /**
     * 数据元素英文名称
     * @return
     */
    public String getDataElementEN() {
        if(dataElementEN==null || dataElementEN.isEmpty()){
            return "";
        }
        return dataElementEN.trim();
    }

    public void setDataElementEN(String dataElementEN) {
        this.dataElementEN = dataElementEN;
    }

    /**
     * 数据组件中文名称
     * @return
     */
    public String getDataModuleCN() {
        if(dataModuleCN==null || dataModuleCN.isEmpty()){
            return "";
        }
        return dataModuleCN.trim();
    }

    public void setDataModuleCN(String dataModuleCN) {
        this.dataModuleCN = dataModuleCN;
    }

    /**
     * 数据类型基类/数据元素约束类型英文名称
     * @return
     */
    public String getDataBaseTypeEN() {
        if(dataBaseTypeEN==null || dataBaseTypeEN.isEmpty()){
            return "";
        }
        return dataBaseTypeEN.trim();
    }

    public void setDataBaseTypeEN(String dataBaseTypeEN) {
        this.dataBaseTypeEN = dataBaseTypeEN;
    }

    /**
     * 数据组件英文定义
     * @return
     */
    public String getDataModuleDefEN() {
        if(dataModuleDefEN==null || dataModuleDefEN.isEmpty()){
            return "";
        }
        return dataModuleDefEN.trim();
    }

    public void setDataModuleDefEN(String dataModuleDefEN) {
        this.dataModuleDefEN = dataModuleDefEN;
    }

    /**
     * 数据组件中文定义
     * @return
     */
    public String getDataModuleDefCN() {
        if(dataModuleDefCN==null || dataModuleDefCN.isEmpty()){
            return "";
        }
        return dataModuleDefCN.trim();
    }

    public void setDataModuleDefCN(String dataModuleDefCN) {
        this.dataModuleDefCN = dataModuleDefCN;
    }

    /**
     * 所有引用标准
     * @return
     */
    public String getAllRefStandard() {
        if(allRefStandard==null || allRefStandard.isEmpty()){
            return "";
        }
        return allRefStandard.trim();
    }

    public void setAllRefStandard(String allRefStandard) {
        this.allRefStandard = allRefStandard;
    }

    @Override
    public String toString() {
        return "ElementListModel{" +
                "elementList=" + elementList +
                ", elementLirTag='" + elementLirTag + '\'' +
                ", dataModuleTag='" + dataModuleTag + '\'' +
                ", version='" + version + '\'' +
                ", elementType='" + elementType + '\'' +
                ", dataTypeEN='" + dataTypeEN + '\'' +
                ", dataElementEN='" + dataElementEN + '\'' +
                ", dataModuleCN='" + dataModuleCN + '\'' +
                ", dataBaseTypeEN='" + dataBaseTypeEN + '\'' +
                ", dataModuleDefEN='" + dataModuleDefEN + '\'' +
                ", dataModuleDefCN='" + dataModuleDefCN + '\'' +
                ", allRefStandard='" + allRefStandard + '\'' +
                '}';
    }
}
